// 定义一个SerachFunc类型的函数接口
interface SerachFunc {
  // 函数签名
  (source: string, subString: string) : boolean
}

// 使用
let mySearch: SerachFunc
mySearch = function(source: string, subString: string) {
  // y.search('x')返回x在字符串中第一次出现的下标
  let result = source.search(subString)
  return result > -1
}
const res1 = mySearch('hello world', 'w')
console.log(res1); // true


// 参数不必与接口匹配，ts 类型检查器做了兼容处理
// 你也不必在函数声明时定义返回值类型，ts会进行类型推断
let yourSearch: SerachFunc
yourSearch = function(src, sub) {
  return src.search(sub) > -1
}
const res3 = yourSearch('hello', 'w')
console.log(res3); // false

